package com.yanqu.road.entity.activity.suitang.config;

import com.yanqu.road.entity.activity.ActivityConfig;
import com.yanqu.road.entity.enums.eActivityConfigType;
import com.yanqu.road.utils.string.StringUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class SuiTangParamConfig {

    // 军资
    private int junZiItem;

    // 军功
    private int zhanGongItem;

    // 募兵令
    private int muBingLingItem;

    // 民心
    private int minXinItem = 101700;

    // 逐鹿隋唐--参与资格（全区服前n的商会
    private int suiTangJoinCond;

    // 逐鹿隋唐--每组商会最大数量
    private int suiTangGroupChamberNumMax;

    // 逐鹿隋唐--各分组晋级商会数（第一天义军；骁骑|第二天义军；骁骑
    private List<List<Integer>> suiTangGroupChamberNumPromotion;

    // 逐鹿隋唐--报名时间(活动天数；开启时间；结束时间）
    private List<Long> suiTangCreateTeamTime;

    // 逐鹿隋唐--活动时间(活动天数；开启时间；结束时间）
    private List<List<Long>> suiTangFirstStageTime;

    // 逐鹿隋唐--中心城时间(活动天数；开启时间）
    private List<List<Long>> suiTangSecondStageTime;

    // 逐鹿隋唐--竞猜时间(活动天数；开启时间；结束时间）
    private List<Integer> suiTangBetStageTime;

    // 逐鹿隋唐--相邻敌方城池的移动时间的配置/s
    private int suiTangCityMoveTime;

    // 逐鹿隋唐--逐鹿隋唐--元宝加速条件（行军时间大于n秒，最小行军时间也取这个配置
    private int suiTangCityMoveBuffCond;

    // 逐鹿隋唐--元宝加速行军时间buff ID
    private int suiTangCityMoveBuffId;

    // 逐鹿隋唐--元宝消耗（初始值|递增值|最大值，公式：最终消耗=min（初始值+递增值×（同一次行军的加速次数-1），最大值）
    private List<Integer> suiTangCityMoveBuffCost;

    // 逐鹿隋唐--称号加成（称号类型；buff ID
    private List<List<Integer>> suiTangCityMoveTitleBuffAdd;

    // 逐鹿隋唐--城防军首次恢复时间/s
    private int suiTangCitySoldierRecoverTimeFirst;

    // 逐鹿隋唐--城防军恢复时间/s
    private int suiTangCitySoldierRecoverTime;

    // 逐鹿隋唐--城池事件刷新时间/h
    private List<Integer> suiTangEventRefreshTime;

    // 逐鹿隋唐--城池事件生效的城池类型
    private int suiTangEventCityType;

    // 逐鹿隋唐--征兵速率(身份等级最小值;征兵人数/秒)
    private List<List<Integer>> suiTangSoldierRecoverCond;

    // 逐鹿隋唐--阵营礼包(礼包道具key;宝箱ID;民心)
    private List<List<Long>> suiTangCampGiftBag;

    // 弹幕连胜终结播报条件(连胜次数)
    private int suiTangBarrageStreakNum;

    // 城池易主播报条件(战斗场次)
    private int suiTangCityChangeBattleNum;

    // 求援频率/h
    private int suiTangHelpTime;

    // 个人战报保留数量
    private int suiTangPersonalBattleReportNumLimit;

    // 城池战报保留数量
    private int suiTangCityBattleReportNumLimit;

    // 队伍显示规则(优先显示站场内己方阵营战功前10名的队伍)
    private int suiTangTeamShowRule;

    // 排兵布阵参数(最小方阵；最大方阵；1=xx士兵)
    private List<Integer> suiTangTeamPhalanxParam;

    // 战力冷却时间/H
    private int suiTangPowerCoolDownTime;

    // 每个职业前n门客
    private int suiTangPlayerEveryJobPatronsNumMax;

    // 队伍带兵上限(参数1~参数5)
    private List<Integer> suiTangTeamNumLimitParam;

    // 队伍带兵下限(千分比)
    private int suiTangTeamNumLowerLimitParam;

    // 队伍带兵下限(固定值)
    private int suiTangTeamNumLowerLimitFixedParam;

    // 兵营上限参数(千分比)
    private int suiTangBarrackNumLimitParam;

    // 战斗损兵比例(参数1~参数7)
    private List<Integer> suiTangSoldierLostParam;

    // 战功值(参数1~参数4)
    private List<Integer> suiTangItemScoreParam;

    // 战斗持续时间
    private int suiTangBattleTime;

    // 战斗结束保护时间
    private int suiTangBattleProtectTime;

    // 城池事件 ID 列表
    private List<Integer> suiTangEventCityBuffList;

    // 逐鹿隋唐--突厥行军路程
    private int suiTangYinShanMoveCost;

    // 逐鹿隋唐--隋唐行军金甲形象的最新buffId
    private int suiTangJinJiaMinBuffId = 103;

    // 根据地--交战状态结束判断时间/s
    private int warFinishTime;

    // 根据地--阻击所需人数配置（间隔时间加一人|间隔时间减1人|人数上限）
    private List<Integer> warDefensePeople = new ArrayList<>();

    // 元宝加速--加速次数上限
    private int moveAutoNum;

    // 元宝加速--加速时间点档位/s
    private List<Integer> moveAutoTimeList = new ArrayList<>();

    // 元宝加速--默认加速时间点档位/s
    private int moveAutoTimeInit;


    public boolean initParamConfig(Map<String, ActivityConfig> activityConfigMap) {
        setJunZiItem(activityConfigMap.get(eActivityConfigType.EXCHANGE_SCORE_ITEM_ID_SUI_TANG.getName()).getIntValue());
        setZhanGongItem(activityConfigMap.get(eActivityConfigType.SUITANG_ITEM_SCORE.getName()).getIntValue());
        setMuBingLingItem(activityConfigMap.get(eActivityConfigType.SUITANG_ITEM_SOLDIERS.getName()).getIntValue());
        setSuiTangJoinCond(activityConfigMap.get(eActivityConfigType.SUITANG_JOIN_COND.getName()).getIntValue());
        setSuiTangGroupChamberNumMax(activityConfigMap.get(eActivityConfigType.SUITANG_GROUP_CHAMBER_NUM_MAX.getName()).getIntValue());
        setSuiTangGroupChamberNumPromotion(parseInt(activityConfigMap.get(eActivityConfigType.SUITANG_GROUP_CHAMBER_NUM_PROMOTION.getName()).getValue()));
        setSuiTangCreateTeamTime(StringUtils.stringToLongList(activityConfigMap.get(eActivityConfigType.SUITANG_CREATE_TEAM_TIME.getName()).getValue(),";"));
        setSuiTangFirstStageTime(parseLong(activityConfigMap.get(eActivityConfigType.SUITANG_FIRST_STAGE_TIME.getName()).getValue()));
        setSuiTangSecondStageTime(parseLong(activityConfigMap.get(eActivityConfigType.SUITANG_SECOND_STAGE_TIME.getName()).getValue()));
        setSuiTangBetStageTime(StringUtils.stringToIntegerList(activityConfigMap.get(eActivityConfigType.SUITANG_BET_STAGE_TIME.getName()).getValue(), ";"));
        setSuiTangCityMoveTime(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_MOVE_TIME.getName()).getIntValue());
        setSuiTangCityMoveBuffId(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_MOVE_BUFF_ID.getName()).getIntValue());
        setSuiTangCityMoveBuffCost(StringUtils.stringToIntegerList(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_MOVE_BUFF_COST.getName()).getValue(), "\\|"));
        setSuiTangCityMoveTitleBuffAdd(parseInt(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_MOVE_TITLE_BUFF_ADD.getName()).getValue()));
        setSuiTangCitySoldierRecoverTimeFirst(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_SOLDIER_RECOVER_TIME_FIRST.getName()).getIntValue());
        setSuiTangCitySoldierRecoverTime(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_SOLDIER_RECOVER_TIME.getName()).getIntValue());
        setSuiTangEventRefreshTime(StringUtils.stringToIntegerList(activityConfigMap.get(eActivityConfigType.SUITANG_EVENT_REFRESH_TIME.getName()).getValue(), "\\|"));
        setSuiTangEventCityType(activityConfigMap.get(eActivityConfigType.SUITANG_EVENT_CITY_TYPE.getName()).getIntValue());
        setSuiTangSoldierRecoverCond(parseInt(activityConfigMap.get(eActivityConfigType.SUITANG_SOLDIER_RECOVER_COND.getName()).getValue()));
        setSuiTangCampGiftBag(parseLong(activityConfigMap.get(eActivityConfigType.SUITANG_CAMP_GIFT_BAG.getName()).getValue()));
        setSuiTangBarrageStreakNum(activityConfigMap.get(eActivityConfigType.SUITANG_BARRAGE_STREAK_NUM.getName()).getIntValue());
        setSuiTangCityChangeBattleNum(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_CHANGE_BATTLE_NUM.getName()).getIntValue());
        setSuiTangHelpTime(activityConfigMap.get(eActivityConfigType.SUITANG_HELP_TIME.getName()).getIntValue());
        setSuiTangPersonalBattleReportNumLimit(activityConfigMap.get(eActivityConfigType.SUITANG_PERSONAL_BATTLE_REPORT_NUM_LIMIT.getName()).getIntValue());
        setSuiTangCityBattleReportNumLimit(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_BATTLE_REPORT_NUM_LIMIT.getName()).getIntValue());
        setSuiTangTeamShowRule(activityConfigMap.get(eActivityConfigType.SUITANG_TEAM_SHOW_RULE.getName()).getIntValue());
        setSuiTangTeamPhalanxParam(StringUtils.stringToIntegerList(activityConfigMap.get(eActivityConfigType.SUITANG_TEAM_PHALANX_PARAM.getName()).getValue(), ";"));
        setSuiTangPowerCoolDownTime(activityConfigMap.get(eActivityConfigType.SUITANG_POWER_COOL_DOWN_TIME.getName()).getIntValue());
        setSuiTangPlayerEveryJobPatronsNumMax(activityConfigMap.get(eActivityConfigType.SUITANG_PLAYER_EVERY_JOB_PATRONS_NUM_MAX.getName()).getIntValue());
        setSuiTangTeamNumLimitParam(StringUtils.stringToIntegerList(activityConfigMap.get(eActivityConfigType.SUITANG_TEAM_NUM_LIMIT_PARAM.getName()).getValue(), ";"));
        setSuiTangTeamNumLowerLimitParam(activityConfigMap.get(eActivityConfigType.SUITANG_TEAM_NUM_LOWER_LIMIT_PARAM.getName()).getIntValue());
        setSuiTangTeamNumLowerLimitFixedParam(activityConfigMap.get(eActivityConfigType.SUITANG_TEAM_NUM_LOWER_LIMIT_FIXED_PARAM.getName()).getIntValue());
        setSuiTangBarrackNumLimitParam(activityConfigMap.get(eActivityConfigType.SUITANG_BARRACK_NUM_LIMIT_PARAM.getName()).getIntValue());
        setSuiTangSoldierLostParam(StringUtils.stringToIntegerList(activityConfigMap.get(eActivityConfigType.SUITANG_SOLDIER_LOST_PARAM.getName()).getValue(), ";"));
        setSuiTangItemScoreParam(StringUtils.stringToIntegerList(activityConfigMap.get(eActivityConfigType.SUITANG_ITEM_SCORE_PARAM.getName()).getValue(), ";"));
        setSuiTangBattleTime(StringUtils.parseInt(activityConfigMap.get(eActivityConfigType.SUITANG_BATTLE_TIME.getName()).getValue()));
        setSuiTangEventCityBuffList(StringUtils.stringToIntegerList(activityConfigMap.get(eActivityConfigType.SUITANG_EVENT_CITY_BUFF_LIST.getName()).getValue(), "\\|"));
        setSuiTangBattleProtectTime(StringUtils.parseInt(activityConfigMap.get(eActivityConfigType.SUITANG_BATTLE_PROTECT_TIME.getName()).getValue()));
        setSuiTangCityMoveBuffCond(StringUtils.parseInt(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_MOVE_BUFF_COND.getName()).getValue()));
        setSuiTangYinShanMoveCost(StringUtils.parseInt(activityConfigMap.get(eActivityConfigType.SUITANG_LAST_CITY_GRIDS_NUM.getName()).getValue()));

        // 后面加的配置 支持一下迭代 加个判断
        if (activityConfigMap.containsKey(eActivityConfigType.SUITANG_WAR_FINISH_TIME.getName())) {
            setWarFinishTime(activityConfigMap.get(eActivityConfigType.SUITANG_WAR_FINISH_TIME.getName()).getIntValue());
        }
        if (activityConfigMap.containsKey(eActivityConfigType.SUITANG_WAR_DEFENSE_PEOPLE.getName())) {
            setWarDefensePeople(activityConfigMap.get(eActivityConfigType.SUITANG_WAR_DEFENSE_PEOPLE.getName()).getIntListValue("\\|"));
        }
        if (activityConfigMap.containsKey(eActivityConfigType.SUITANG_CITY_MOVE_AUTO_NUM.getName())) {
            setMoveAutoNum(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_MOVE_AUTO_NUM.getName()).getIntValue());
        }
        if (activityConfigMap.containsKey(eActivityConfigType.SUITANG_CITY_MOVE_AUTO_TIME.getName())) {
            setMoveAutoTimeList(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_MOVE_AUTO_TIME.getName()).getIntListValue("\\|"));
        }
        if (activityConfigMap.containsKey(eActivityConfigType.SUITANG_CITY_MOVE_AUTO_TIME_INIT.getName())) {
            setMoveAutoTimeInit(activityConfigMap.get(eActivityConfigType.SUITANG_CITY_MOVE_AUTO_TIME_INIT.getName()).getIntValue());
        }
        return true;
    }

    private List<List<Integer>> parseInt(String str) {
        List<List<Integer>> result = new ArrayList<>();
        List<String> paramList = StringUtils.stringToStringList(str, "\\|");
        for (String param : paramList) {
            List<Integer> list = StringUtils.stringToIntegerList(param, ";");
            result.add(list);
        }
        return result;
    }

    private List<List<Long>> parseLong(String str) {
        List<List<Long>> result = new ArrayList<>();
        List<String> paramList = StringUtils.stringToStringList(str, "\\|");
        for (String param : paramList) {
            List<Long> list = StringUtils.stringToLongList(param, ";");
            result.add(list);
        }
        return result;
    }

    public int getJunZiItem() {
        return junZiItem;
    }

    public void setJunZiItem(int junZiItem) {
        this.junZiItem = junZiItem;
    }

    public int getZhanGongItem() {
        return zhanGongItem;
    }

    public void setZhanGongItem(int zhanGongItem) {
        this.zhanGongItem = zhanGongItem;
    }

    public int getMuBingLingItem() {
        return muBingLingItem;
    }

    public void setMuBingLingItem(int muBingLingItem) {
        this.muBingLingItem = muBingLingItem;
    }

    public int getMinXinItem() {
        return minXinItem;
    }

    public void setMinXinItem(int minXinItem) {
        this.minXinItem = minXinItem;
    }

    public int getSuiTangJoinCond() {
        return suiTangJoinCond;
    }

    public void setSuiTangJoinCond(int suiTangJoinCond) {
        this.suiTangJoinCond = suiTangJoinCond;
    }

    public List<Integer> getSuiTangEventCityBuffList() {
        return suiTangEventCityBuffList;
    }

    public void setSuiTangEventCityBuffList(List<Integer> suiTangEventCityBuffList) {
        this.suiTangEventCityBuffList = suiTangEventCityBuffList;
    }

    public int getSuiTangGroupChamberNumMax() {
        return suiTangGroupChamberNumMax;
    }

    public void setSuiTangGroupChamberNumMax(int suiTangGroupChamberNumMax) {
        this.suiTangGroupChamberNumMax = suiTangGroupChamberNumMax;
    }

    public List<List<Integer>> getSuiTangGroupChamberNumPromotion() {
        return suiTangGroupChamberNumPromotion;
    }

    public void setSuiTangGroupChamberNumPromotion(List<List<Integer>> suiTangGroupChamberNumPromotion) {
        this.suiTangGroupChamberNumPromotion = suiTangGroupChamberNumPromotion;
    }

    public List<Long> getSuiTangCreateTeamTime() {
        return suiTangCreateTeamTime;
    }

    public void setSuiTangCreateTeamTime(List<Long> suiTangCreateTeamTime) {
        this.suiTangCreateTeamTime = suiTangCreateTeamTime;
    }

    public List<List<Long>> getSuiTangFirstStageTime() {
        return suiTangFirstStageTime;
    }

    public void setSuiTangFirstStageTime(List<List<Long>> suiTangFirstStageTime) {
        this.suiTangFirstStageTime = suiTangFirstStageTime;
    }

    public List<List<Long>> getSuiTangSecondStageTime() {
        return suiTangSecondStageTime;
    }

    public void setSuiTangSecondStageTime(List<List<Long>> suiTangSecondStageTime) {
        this.suiTangSecondStageTime = suiTangSecondStageTime;
    }

    public List<Integer> getSuiTangBetStageTime() {
        return suiTangBetStageTime;
    }

    public void setSuiTangBetStageTime(List<Integer> suiTangBetStageTime) {
        this.suiTangBetStageTime = suiTangBetStageTime;
    }

    public int getSuiTangCityMoveTime() {
        return suiTangCityMoveTime;
    }

    public void setSuiTangCityMoveTime(int suiTangCityMoveTime) {
        this.suiTangCityMoveTime = suiTangCityMoveTime;
    }

    public int getSuiTangCityMoveBuffId() {
        return suiTangCityMoveBuffId;
    }

    public void setSuiTangCityMoveBuffId(int suiTangCityMoveBuffId) {
        this.suiTangCityMoveBuffId = suiTangCityMoveBuffId;
    }

    public List<Integer> getSuiTangCityMoveBuffCost() {
        return suiTangCityMoveBuffCost;
    }

    public int getSuiTangCityMoveBuffCost(int upNum) {
        return Math.min(suiTangCityMoveBuffCost.get(0) + Math.max(0, upNum - 1) * suiTangCityMoveBuffCost.get(1), suiTangCityMoveBuffCost.get(2));
    }

    public void setSuiTangCityMoveBuffCost(List<Integer> suiTangCityMoveBuffCost) {
        this.suiTangCityMoveBuffCost = suiTangCityMoveBuffCost;
    }

    public List<List<Integer>> getSuiTangCityMoveTitleBuffAdd() {
        return suiTangCityMoveTitleBuffAdd;
    }

    public int getHonoraryTitleBuffId(int honoraryTitle) {
        for (List<Integer> list : suiTangCityMoveTitleBuffAdd) {
            if (list.get(0) == honoraryTitle) {
                return list.get(1);
            }
        }
        if (honoraryTitle > suiTangCityMoveTitleBuffAdd.get(suiTangCityMoveTitleBuffAdd.size() - 1).get(0)) {
            return suiTangCityMoveTitleBuffAdd.get(suiTangCityMoveTitleBuffAdd.size() - 1).get(1);
        }
        return 0;
    }

    public void setSuiTangCityMoveTitleBuffAdd(List<List<Integer>> suiTangCityMoveTitleBuffAdd) {
        this.suiTangCityMoveTitleBuffAdd = suiTangCityMoveTitleBuffAdd;
    }

    public int getSuiTangCitySoldierRecoverTimeFirst() {
        return suiTangCitySoldierRecoverTimeFirst;
    }

    public void setSuiTangCitySoldierRecoverTimeFirst(int suiTangCitySoldierRecoverTimeFirst) {
        this.suiTangCitySoldierRecoverTimeFirst = suiTangCitySoldierRecoverTimeFirst;
    }

    public int getSuiTangCitySoldierRecoverTime() {
        return suiTangCitySoldierRecoverTime;
    }

    public void setSuiTangCitySoldierRecoverTime(int suiTangCitySoldierRecoverTime) {
        this.suiTangCitySoldierRecoverTime = suiTangCitySoldierRecoverTime;
    }

    public List<Integer> getSuiTangEventRefreshTime() {
        return suiTangEventRefreshTime;
    }

    public void setSuiTangEventRefreshTime(List<Integer> suiTangEventRefreshTime) {
        this.suiTangEventRefreshTime = suiTangEventRefreshTime;
    }

    public int getSuiTangEventCityType() {
        return suiTangEventCityType;
    }

    public void setSuiTangEventCityType(int suiTangEventCityType) {
        this.suiTangEventCityType = suiTangEventCityType;
    }

    public List<List<Integer>> getSuiTangSoldierRecoverCond() {
        return suiTangSoldierRecoverCond;
    }

    public int getSuiTangSoldierRecoverCond(int lv) {
        int ret = 0;
        for (List<Integer> list : suiTangSoldierRecoverCond) {
            if (list.size() < 2) continue;
            if (lv >= list.get(0)) ret = list.get(1);
            if (lv < list.get(0)) break;
        }
        return ret;
    }

    public void setSuiTangSoldierRecoverCond(List<List<Integer>> suiTangSoldierRecoverCond) {
        this.suiTangSoldierRecoverCond = suiTangSoldierRecoverCond;
    }

    public List<List<Long>> getSuiTangCampGiftBag() {
        return suiTangCampGiftBag;
    }

    public void setSuiTangCampGiftBag(List<List<Long>> suiTangCampGiftBag) {
        this.suiTangCampGiftBag = suiTangCampGiftBag;
    }

    public int getSuiTangBarrageStreakNum() {
        return suiTangBarrageStreakNum;
    }

    public void setSuiTangBarrageStreakNum(int suiTangBarrageStreakNum) {
        this.suiTangBarrageStreakNum = suiTangBarrageStreakNum;
    }

    public int getSuiTangCityChangeBattleNum() {
        return suiTangCityChangeBattleNum;
    }

    public void setSuiTangCityChangeBattleNum(int suiTangCityChangeBattleNum) {
        this.suiTangCityChangeBattleNum = suiTangCityChangeBattleNum;
    }

    public int getSuiTangHelpTime() {
        return suiTangHelpTime;
    }

    public void setSuiTangHelpTime(int suiTangHelpTime) {
        this.suiTangHelpTime = suiTangHelpTime;
    }

    public int getSuiTangPersonalBattleReportNumLimit() {
        return suiTangPersonalBattleReportNumLimit;
    }

    public void setSuiTangPersonalBattleReportNumLimit(int suiTangPersonalBattleReportNumLimit) {
        this.suiTangPersonalBattleReportNumLimit = suiTangPersonalBattleReportNumLimit;
    }

    public int getSuiTangCityBattleReportNumLimit() {
        return suiTangCityBattleReportNumLimit;
    }

    public void setSuiTangCityBattleReportNumLimit(int suiTangCityBattleReportNumLimit) {
        this.suiTangCityBattleReportNumLimit = suiTangCityBattleReportNumLimit;
    }

    public int getSuiTangTeamShowRule() {
        return suiTangTeamShowRule;
    }

    public void setSuiTangTeamShowRule(int suiTangTeamShowRule) {
        this.suiTangTeamShowRule = suiTangTeamShowRule;
    }

    public List<Integer> getSuiTangTeamPhalanxParam() {
        return suiTangTeamPhalanxParam;
    }

    public void setSuiTangTeamPhalanxParam(List<Integer> suiTangTeamPhalanxParam) {
        this.suiTangTeamPhalanxParam = suiTangTeamPhalanxParam;
    }

    public int getSuiTangPowerCoolDownTime() {
        return suiTangPowerCoolDownTime;
    }

    public void setSuiTangPowerCoolDownTime(int suiTangPowerCoolDownTime) {
        this.suiTangPowerCoolDownTime = suiTangPowerCoolDownTime;
    }

    public int getSuiTangPlayerEveryJobPatronsNumMax() {
        return suiTangPlayerEveryJobPatronsNumMax;
    }

    public void setSuiTangPlayerEveryJobPatronsNumMax(int suiTangPlayerEveryJobPatronsNumMax) {
        this.suiTangPlayerEveryJobPatronsNumMax = suiTangPlayerEveryJobPatronsNumMax;
    }

    public List<Integer> getSuiTangTeamNumLimitParam() {
        return suiTangTeamNumLimitParam;
    }

    public void setSuiTangTeamNumLimitParam(List<Integer> suiTangTeamNumLimitParam) {
        this.suiTangTeamNumLimitParam = suiTangTeamNumLimitParam;
    }

    public int getSuiTangTeamNumLowerLimitParam() {
        return suiTangTeamNumLowerLimitParam;
    }

    public void setSuiTangTeamNumLowerLimitParam(int suiTangTeamNumLowerLimitParam) {
        this.suiTangTeamNumLowerLimitParam = suiTangTeamNumLowerLimitParam;
    }

    public int getSuiTangTeamNumLowerLimitFixedParam() {
        return suiTangTeamNumLowerLimitFixedParam;
    }

    public void setSuiTangTeamNumLowerLimitFixedParam(int suiTangTeamNumLowerLimitFixedParam) {
        this.suiTangTeamNumLowerLimitFixedParam = suiTangTeamNumLowerLimitFixedParam;
    }

    public List<Integer> getSuiTangSoldierLostParam() {
        return suiTangSoldierLostParam;
    }

    public void setSuiTangSoldierLostParam(List<Integer> suiTangSoldierLostParam) {
        this.suiTangSoldierLostParam = suiTangSoldierLostParam;
    }

    public List<Integer> getSuiTangItemScoreParam() {
        return suiTangItemScoreParam;
    }

    public void setSuiTangItemScoreParam(List<Integer> suiTangItemScoreParam) {
        this.suiTangItemScoreParam = suiTangItemScoreParam;
    }

    public int getSuiTangBarrackNumLimitParam() {
        return suiTangBarrackNumLimitParam;
    }

    public void setSuiTangBarrackNumLimitParam(int suiTangBarrackNumLimitParam) {
        this.suiTangBarrackNumLimitParam = suiTangBarrackNumLimitParam;
    }

    public int getSuiTangBattleTime() {
        return suiTangBattleTime;
    }

    public void setSuiTangBattleTime(int suiTangBattleTime) {
        this.suiTangBattleTime = suiTangBattleTime;
    }

    public int getSuiTangBattleProtectTime() {
        return suiTangBattleProtectTime;
    }

    public void setSuiTangBattleProtectTime(int suiTangBattleProtectTime) {
        this.suiTangBattleProtectTime = suiTangBattleProtectTime;
    }

    public int getSuiTangCityMoveBuffCond() {
        return suiTangCityMoveBuffCond;
    }

    public void setSuiTangCityMoveBuffCond(int suiTangCityMoveBuffCond) {
        this.suiTangCityMoveBuffCond = suiTangCityMoveBuffCond;
    }

    public int getSuiTangYinShanMoveCost() {
        return suiTangYinShanMoveCost;
    }

    public void setSuiTangYinShanMoveCost(int suiTangYinShanMoveCost) {
        this.suiTangYinShanMoveCost = suiTangYinShanMoveCost;
    }

    public int getSuiTangJinJiaMinBuffId() {
        return suiTangJinJiaMinBuffId;
    }

    public void setSuiTangJinJiaMinBuffId(int suiTangJinJiaMinBuffId) {
        this.suiTangJinJiaMinBuffId = suiTangJinJiaMinBuffId;
    }

    public int getWarFinishTime() {
        return warFinishTime;
    }

    public void setWarFinishTime(int warFinishTime) {
        this.warFinishTime = warFinishTime;
    }

    public List<Integer> getWarDefensePeople() {
        return warDefensePeople;
    }

    public void setWarDefensePeople(List<Integer> warDefensePeople) {
        this.warDefensePeople = warDefensePeople;
    }

    public int getMoveAutoNum() {
        return moveAutoNum;
    }

    public void setMoveAutoNum(int moveAutoNum) {
        this.moveAutoNum = moveAutoNum;
    }

    public List<Integer> getMoveAutoTimeList() {
        return moveAutoTimeList;
    }

    public void setMoveAutoTimeList(List<Integer> moveAutoTimeList) {
        this.moveAutoTimeList = moveAutoTimeList;
    }

    public int getMoveAutoTimeInit() {
        return moveAutoTimeInit;
    }

    public void setMoveAutoTimeInit(int moveAutoTimeInit) {
        this.moveAutoTimeInit = moveAutoTimeInit;
    }

    /**
     * 自动加速元宝消耗
     */
    public int getAutoSettingIngotsNum() {
        // 这里先取初始值，不支持递增消耗
        return suiTangCityMoveBuffCost.get(0);
    }
}
